import request from '@/utils/requestFlow'

export function saveDefine(data) {
  return request({
    url: '/flow/saveDefine',
    method: 'post',
    data
  })
}

/**
 * 获取流程实例高亮数据
 * @param {*} data
 */
export function highLightData(data) {
  return request({
    url: '/flow/highLightData',
    method: 'post',
    params: data
  })
}

export function getXml(data) {
  return request({
    url: '/flow/getXml',
    method: 'post',
    params: data
  })
}

/**
 * 启动并执行第一个任务节点
 * @param {*} data
 */
export function startAndExecute(data) {
  return request({
    url: '/flow/startAndExecute',
    method: 'post',
    data
  })
}
/**
 * 启动并执行第一个任务节点(通过名称)
 * @param {*} data
 */
export function startAndExecuteByName(data) {
  return request({
    url: '/flow/startAndExecuteByName',
    method: 'post',
    data
  })
}

/**
 * 根据当前用户查询待办任务列表
 * @param {*} data
 */
export function todoList(data) {
  return request({
    url: '/flow/task/todoList',
    method: 'post',
    data
  })
}

/**
 * 根据当前用户查询已办任务列表
 * @param {*} data
 */
export function doneList(data) {
  return request({
    url: '/flow/task/doneList',
    method: 'post',
    data
  })
}

/**
 * 驳回到申请人
 * @param {*} orderId
 * @param {*} taskId
 * @param {*} reason
 */
export function rejectToCreate(data) {
  return request({
    url: '/flow/task/rejectToCreate',
    method: 'post',
    params: data
  })
}

/**
 * 驳回到申请人
 * @param {*} taskId
 * @param {*} reason
 */
export function doApproval(data) {
  return request({
    url: '/flow/task/approval',
    method: 'post',
    params: data
  })
}

/**
 * 根据流程定义ID，删除流程定义
 * @param {*} id
 */
export function flowDelete(data) {
  return request({
    url: '/flow/process/delete',
    method: 'post',
    params: data
  })
}

/**
 * 根据流程定义ID，启用流程定义
 * @param {*} id
 */
export function flowReDeploy(data) {
  return request({
    url: '/flow/process/reDeploy',
    method: 'post',
    params: data
  })
}

/**
 * 获取所有有效流程
 */
export function getProcessList() {
  return request({
    url: '/flow/getProcessList',
    method: 'post'
  })
}

/**
 * 获取所有审批记录
 * @param {*} orderId
 */
export function getRecordsList(data) {
  return request({
    url: '/flow/getRecordsList',
    method: 'post',
    params: data
  })
}

/**
 * 获取完整的审批记录，包括流程图、流程图高亮、审批记录
 * @param {*} orderId
 */
export function records(data) {
  return request({
    url: '/flow/task/records',
    method: 'post',
    params: data
  })
}

/**
 * 获取填报数据
 * @param {*} orderId
 */
export function getFillLogListAllByOrderId(data) {
  return request({
    url: '/approRecords/getFillLogListAllByOrderId',
    method: 'post',
    params: data
  })
}

/**
 * 根据当前用户查询已办任务列表
 * @param {*} data
 */
export function todoLakeList(data) {
  return request({
    url: '/flow/task/todoLakeList',
    method: 'post',
    data
  })
}

/**
 * 根据当前用户查询已办任务列表
 * @param {*} data
 */
export function doneLakeList(data) {
  return request({
    url: '/flow/task/doneLakeList',
    method: 'post',
    data
  })
}

/**
 * 驳回到申请人
 * @param {*} taskId
 * @param {*} reason
 */
export function lakeApproval(data) {
  return request({
    url: '/flow/task/lakeApproval',
    method: 'post',
    params: data
  })
}

/**
 * 驳回到申请人
 * @param {*} orderId
 * @param {*} taskId
 * @param {*} reason
 */
export function lakeRejectToCreate(data) {
  return request({
    url: '/flow/task/lakeRejectToCreate',
    method: 'post',
    params: data
  })
}
